iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
自我挑戰組

自我挑戰Ruby系列 第 7

Day 7 - 變數定義

  • 分享至 

  • xImage
  •  

變數

在Ruby中的變數,包括區域變數、全域變數、實例變數、類別變數以及常數。

變數會以小寫的字首開頭,而常數以大寫的字首開頭。

區域變數 - 小寫字首開頭;例如:amount

全域變數 - 比起區域變數,前面加上錢字號($);例如:$amount

實例變數 - 比起區域變數,前面加上@;例如:@amount

類別變數 - 比起區域變數,前面加上@@;例如:@@amount

常數 - 以大寫的字首開頭;例如:Amount

其中,全域變數($)以及實例變數(@)預設值為nil,其他均沒有預設值。

此外,在Ruby中還有虛擬變數,這些是內部定義的,內容不能被改變,例如:self、false、true…等。

命名法

變數命名法中主要以兩種形式,駝峰式(camelCase)或蛇形式(snake_case),

而在Ruby內是使用蛇形式(snake_case)。

駝峰式(camelCase) - 第二個單字後的第一個字皆為大寫,單字間沒有任何型態做區隔。

例如:

firstName

lastName

mathTestScore

蛇形式(snake_case) - 每個單字皆為小寫,每個空白以底線取代。

例如:

first_name

last_name

math_test_score

變數指定

在Ruby的世界會用一個等號(=)表示指定的意思,會以兩個等號(==)表示是否相等,

例如:if a == b → 如果a和b相等,其中 a ==b 就會回傳 True 或 False。

單一變數指定:a = 1

指定多個變數: b, c, d = [1, 2, 3]

指定多個變數的時候,我們會藉由[ ] 表示成一個陣列的模式。

https://ithelp.ithome.com.tw/upload/images/20230922/20162251axwczcJVIP.png

若不用陣列的形式,也是可以 b, c, d = 1, 2, 3

同個變數再指定

例如:x = x+2

當今天x = 1 時,如果做了第一次x = x+2,則現在 x 會等於3。

而在做第二次x = x+2時,則現在x會等於5。

x = x+2 在Ruby內其實也可以寫成 x+= 2

所以當第三次做x+= 2時,則會像在做x = x+2一樣,所以現在x會等於7。

所以其實 x = x+2 也可以寫成 x+= 2。

Day 7 結語

指定多個變數的時候,有時候在想或許有沒有更快好的方法可以指定。

例如 a = 1, b=2, c=[3,4,5]

原本可能要藉由 a, b, c = [1,2, [3,4,5]]

但藉由在變數前面放個星號()可以讓數量左右不同時的多重變數指定,最後一個變數吸收剩下所有的值。

變成 a, b, c =1, 2, 3, 4, 5

https://ithelp.ithome.com.tw/upload/images/20230922/20162251xEARQPMFiS.png


上一篇
Day 6 - 物件導向概念
下一篇
Day 8 - 數字
系列文
自我挑戰Ruby30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言